home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 2006 September
/
PCWorld_2006-09_cd.bin
/
komercni software
/
zoner
/
zps8_cz.exe
/
{app}
/
HTMLPublish
/
compact.zht
/
main.js
< prev
next >
Wrap
Text File
|
2006-03-22
|
16KB
|
486 lines
function GetPageFN(iPage) {
if (iPage == 1) {
return "index.htm";
}
return "page" + IntToStr(iPage, 5) + ".htm";
}
function GetImgPageFN(iFile) {
return "ipage" + IntToStr(iFile, 5) + ".htm";
}
function GenerateAlbum(cSourcePath, cDestPath)
{
var iFilesCount = lSelectedFiles.GetCount();
var iDirsCount = lSelectedDirs.GetCount();
InitProgress(iDirsCount + iFilesCount);
var iPerPage = iCols*iRows;
var iPagesCount = Math.ceil(iFilesCount / (iCols*iRows));
//var iLeftColumnWidth=iThnWidth+50;
var iLineStyle = parseInt(cLineStyle);
var sLineStyle = "solid";
if (iLineStyle==1)
sLineStyle="dashed";
var iBackRef = parseInt(cBackRef);
var iNavDivOff=iBlockHeaderFontSize-iFontSize;
//if (iNavDivOff<0) iNavDivOff=0;
// copy index style
var tPageCSS = new CTemplate();
tPageCSS.Load(cSourcePath + "css_index.tpl", 0);
if (bBackImage)
tPageCSS.SetReplace("${BACKGROUND}", HEXColor(iBgColor) + " url(" + cBackImageURL + ")");
else
tPageCSS.SetReplace("${BACKGROUND}", HEXColor(iBgColor));
tPageCSS.SetReplace("${TEXTCOLOR}", HEXColor(iTxtColor));
tPageCSS.SetReplace("${THNTEXTCOLOR}", HEXColor(iThnTxtColor));
tPageCSS.SetReplace("${LINKCOLOR}", HEXColor(iLnkColor));
tPageCSS.SetReplace("${SEPARATORCOLOR}", HEXColor(iSeparatorColor));
tPageCSS.SetReplace("${IMGBORDERCOLOR}", HEXColor(iImgBorderColor));
tPageCSS.SetReplace("${THNBORDERCOLOR}", HEXColor(iThnBorderColor));
tPageCSS.SetReplace("${ATHNBORDERCOLOR}", HEXColor(iAThnBorderColor));
tPageCSS.SetReplace("${PREVIEWCELLWIDTH}", iThnWidth+20);
tPageCSS.SetReplace("${FOLDERSCOLUMNWIDTH}", iLeftColumnWidth);
tPageCSS.SetReplace("${IMAGESECTIONOFFSET}", iLeftColumnWidth+20);
tPageCSS.SetReplace("${IMAGEAREAWIDTH}", iImgWidth);
tPageCSS.SetReplace("${IMAGEAREAHEIGHT}", iImgHeight);
tPageCSS.SetReplace("${LINESTYLE}", sLineStyle);
tPageCSS.SetReplace("${FONTSIZE}", iFontSize);
tPageCSS.SetReplace("${THMFONTSIZE}", iThnFontSize);
tPageCSS.SetReplace("${DESCTEXTCOLOR}", HEXColor(iDescTxtColor));
tPageCSS.SetReplace("${FOOTERFONTSIZE}", iFooterFontSize);
tPageCSS.SetReplace("${FOLDERBORDERCOLOR}", HEXColor(iFolderBorderColor));
tPageCSS.SetReplace("${GALDESCFONTSIZE}", iGalDescFontSize);
tPageCSS.SetReplace("${HEADERFONTSIZE}", iBlockHeaderFontSize);
tPageCSS.SetReplace("${NAVDIVOFF}", iNavDivOff);
SaveString(cDestPath + "page.css", tPageCSS.Replace(), 0);
var tImageCSS = new CTemplate();
tImageCSS.Load(cSourcePath + "css_image.tpl", 0);
if (bBackImage)
tImageCSS.SetReplace("${BACKGROUND}", HEXColor(iBgColor) + " url(" + cBackImageURL + ")");
else
tImageCSS.SetReplace("${BACKGROUND}", HEXColor(iBgColor));
tImageCSS.SetReplace("${TEXTCOLOR}", HEXColor(iTxtColor));
tImageCSS.SetReplace("${THNTEXTCOLOR}", HEXColor(iThnTxtColor));
tImageCSS.SetReplace("${LINKCOLOR}", HEXColor(iLnkColor));
tImageCSS.SetReplace("${SEPARATORCOLOR}", HEXColor(iSeparatorColor));
tImageCSS.SetReplace("${IMGBORDERCOLOR}", HEXColor(iImgBorderColor));
tImageCSS.SetReplace("${THNBORDERCOLOR}", HEXColor(iThnBorderColor));
tImageCSS.SetReplace("${ATHNBORDERCOLOR}", HEXColor(iAThnBorderColor));
tImageCSS.SetReplace("${FOLDERSCOLUMNWIDTH}", iLeftColumnWidth);
tImageCSS.SetReplace("${IMAGESECTIONOFFSET}", iLeftColumnWidth+20);
tImageCSS.SetReplace("${IMAGEAREAWIDTH}", iImgWidth);
tImageCSS.SetReplace("${IMAGEAREAHEIGHT}", iImgHeight);
tImageCSS.SetReplace("${LINESTYLE}", sLineStyle);
tImageCSS.SetReplace("${FONTSIZE}", iFontSize);
tImageCSS.SetReplace("${THMFONTSIZE}", iThnFontSize);
tImageCSS.SetReplace("${FOOTERFONTSIZE}", iFooterFontSize);
tImageCSS.SetReplace("${HEADERFONTSIZE}", iBlockHeaderFontSize);
tImageCSS.SetReplace("${NAVDIVOFF}", iNavDivOff);
SaveString(cDestPath + "image.css", tImageCSS.Replace(), 0);
var tIndexPage= new CTemplate();
if (iFilesCount>0)
tIndexPage.Load(cSourcePath + "imgindex.htm", 0);
else
tIndexPage.Load(cSourcePath + "galindex.htm", 0);
var tFooter= new CTemplate();
tFooter.Load(cSourcePath + "footer.tpl", 0);
// directories
if (iDirsCount > 0)
{
var tGalNav= new CTemplate();
if (iFilesCount>0)
tGalNav.Load(cSourcePath + "galnav.tpl", 0);
else
tGalNav.Load(cSourcePath + "galnav2.tpl", 0);
tGalNav.SetReplace("${GALLERIESHEADER}", cGalleriesHeader);
var pDefFolderImage = new CImage();
pDefFolderImage.Load(cSourcePath + "folder.png", 0);
var tIndexRow = new CTemplate();
if (iFilesCount>0)
tIndexRow.Load(cSourcePath + "galthm.tpl", 0);
else
tIndexRow.Load(cSourcePath + "galthm2.tpl", 0);
var cIndexRows = "";
var cDirs = "";
for (var iDir = 1; iDir <= iDirsCount; iDir++)
{
SetProgress(iDir);
cDirName = lSelectedDirs.GetAt(iDir-1);
cRelDirName = StripFilePath(cDirName);
CreateDir(cDestPath + cRelDirName);
var pFolderImage = new CImage();
var bCustomFolderImage = pFolderImage.LoadDirPreview(cDirName, pDefFolderImage);
pFolderImage.Render(iBgColor);
pFolderImage.Resize(iThnWidth, iThnHeight, GFX_KEEP_ASPECT | GFX_INTERPOLATE);
tIndexRow.SetReplace("${IMGWIDTH}",pFolderImage.GetWidth());
tIndexRow.SetReplace("${IMGHEIGHT}",pFolderImage.GetHeight());
pFolderImage.SaveAs(cDestPath + cRelDirName + "\\" + "folder.png", PNGformat, 0, 0);
tIndexRow.SetReplace("${GALPATH}", cRelDirName + "/index.htm");
tIndexRow.SetReplace("${GALTHUMB}", cRelDirName + "/" + "folder.png");
tIndexRow.SetReplace("${GALTITLE}", ReplaceExifStrings("{T}", cDirName, cDirName));
tIndexRow.SetReplace("${GALDESC}", ReplaceExifStrings("{D}", cDirName, cDirName));
// tIndexRow.SetReplace("${INDEX_DESC}", ReplaceExifStrings("{D}", cDirName, cDirName));
pFolderImage.Close();
cIndexRows += tIndexRow.Replace();
}
pDefFolderImage.Close();
tGalNav.SetReplace("${INDEXES}", cIndexRows);
tIndexPage.SetReplace("${GALLERIESNAVIGATION}", tGalNav.Replace());
}
else
{
tIndexPage.SetReplace("${GALLERIESNAVIGATION}", "");
}
// generaty gallery
var tImgFooter= new CTemplate();
tImgFooter.Load(cSourcePath + "footer.tpl", 0);
var tIndexRow = new CTemplate();
tIndexRow.Load(cSourcePath + "indexrow.tpl", 0);
var tIndexEntry = new CTemplate();
tIndexEntry.Load(cSourcePath + "indexentry.tpl", 0);
var tIndexEntryEmpty = new CTemplate();
tIndexEntryEmpty.Load(cSourcePath + "indexentryempty.tpl", 0);
var tImgPage = new CTemplate();
tImgPage.Load(cSourcePath + "index.htm", 0);
var tImgTpl = new CTemplate();
if(bImgUseOriginal)
tImgTpl.Load(cSourcePath + "imgorig.tpl", 0);
else
tImgTpl.Load(cSourcePath + "img.tpl", 0);
var tIndexHeader = new CTemplate();
tIndexHeader.Load(cSourcePath + "header.tpl", 0);
var tNavPrev = new CTemplate();
tNavPrev.Load(cSourcePath + "navprev.tpl", 0);
var tNavNext = new CTemplate();
tNavNext.Load(cSourcePath + "navnext.tpl", 0);
var tNavUp = new CTemplate();
tNavUp.Load(cSourcePath + "navup.tpl", 0);
var tImgDesc = new CTemplate();
tImgDesc.Load(cSourcePath + "imgdesc.tpl", 0);
gallerypath = pAlbum.cAlbumRootPath + pAlbum.cCurrentGalleryRelativePath;
var TitleText=ReplaceExifStrings(cPageTitle, gallerypath, gallerypath);
var DescriptionText=ReplaceExifStrings(cGalDescription, gallerypath, gallerypath);
if (TitleText=="")
TitleText=" ";
var cCol=0;
var cRow=0;
var RowText="";
var RowsText="";
var iPos=0;
var cPage=1;
if (iFilesCount==0)
{
if (DescriptionText!="")
{
var tDesc = new CTemplate();
tDesc.Load(cSourcePath + "gallerydesc.tpl", 0);
tDesc.SetReplace("${DESCRIPTIONHEADER}", iGalDescriptionHeader);
tDesc.SetReplace("${DESCRIPTIONTEXT}", DescriptionText);
tIndexPage.SetReplace("${GALLERYDESCRIPTION}",tDesc.Replace());
}
else
tIndexPage.SetReplace("${GALLERYDESCRIPTION}","");
tIndexHeader.SetReplace("${PAGETITLE}", TitleText);
tIndexPage.SetReplace("${GALLERYTITLE}",TitleText);
tIndexPage.SetReplace("${HEADER}",tIndexHeader.Replace());
tFooter.SetReplace("${FOOTER_TEXT}", ReplaceExifStrings(txtFooter, "", ""));
tIndexPage.SetReplace("${FOOTER}",tFooter.Replace());
var cNavigationText="<a href=\"../\">"+tNavUp.Replace()+"</a>";
if (pAlbum.bIsCurrentGalleryRootGallery)
{
if (iBackRef==2)
{
cNavigationText="<a href=\"../\">"+tNavUp.Replace()+"</a>";
}
else
if (iBackRef==3)
{
cNavigationText="<a href=\""+cBackRefURL+"\">"+tNavUp.Replace()+"</a>";
}
else
{
cNavigationText=" ";
}
}
tIndexPage.SetReplace("${NAVIGATION}",cNavigationText);
SaveString(cDestPath + GetPageFN(1), tIndexPage.Replace(), 0);
iPos=iPerPage;
}
for (var iFile = 1; iFile <= iFilesCount || iPos<iPerPage; iFile++) {
if (iFile<=iFilesCount)
{
SetProgress(iDirsCount + iFile);
cFileName = lSelectedFiles.GetAt(iFile-1);
cNumFileName = IntToStr(iFile, 5);
cThnFileName = "thn" + cNumFileName + ".jpg";
cImgFileName = "img" + cNumFileName + ".jpg";
cOrgFileName = "org" + cNumFileName + "." + GetFileExt(cFileName).toLowerCase();
// LOAD FILE
var pImg = new CImage();
pImg.Load(cFileName, 0);
// MAKE IMAGE
tImgTpl.SetReplace("${IMGWIDTH}",0);
tImgTpl.SetReplace("${IMGHEIGHT}",0);
if (bImgUseOriginal)
{
CopyFile(cFileName, cDestPath + cImgFileName, FIL_OM_OVERWRITE);
}
else
{
pImg.Resize(iImgWidth, iImgHeight, GFX_KEEP_ASPECT | GFX_INTERPOLATE);
tImgTpl.SetReplace("${IMGWIDTH}",pImg.GetWidth());
tImgTpl.SetReplace("${IMGHEIGHT}",pImg.GetHeight());
pImg.SaveAs(cDestPath + cImgFileName, JPGformat, iImgJPEG, 0);
}
var imgpos=Math.floor((iImgHeight-pImg.GetHeight())/2);
// MAKE THUMB
pImg.Resize(iThnWidth, iThnHeight, GFX_KEEP_ASPECT | GFX_INTERPOLATE);
iCurThmWidth=pImg.GetWidth();
iCurThmHeight=pImg.GetHeight();
pImg.SaveAs(cDestPath + cThnFileName, JPGformat, iTNJPEG, 0);
// CLOSE
pImg.Close();
// GENERATE IMAGE PAGE
tImgFooter.SetReplace("${FOOTER_TEXT}",ReplaceExifStrings(txtImgFooter, cFileName, cDestPath + cImgFileName));
tImgPage.SetReplace("${IMAGEHEADERTEXT}",ReplaceExifStrings(cImgHeaderText, cFileName, cDestPath + cImgFileName));
tImgPage.SetReplace("${FOOTER}",tImgFooter.Replace());
tImgPage.SetReplace("${IMAGEFILENAME}",cImgFileName);
tImgPage.SetReplace("${GALLERYTITLE}",TitleText);
tImgPage.SetReplace("${INDEXPAGENAME}",GetPageFN(cPage));
tImgTpl.SetReplace("${IMAGEFILENAME}",cImgFileName);
tImgPage.SetReplace("${IMGTPL}",tImgTpl.Replace());
if (cImgDescText!="") {
tImgDesc.SetReplace("${IMAGEDESCTEXT}",ReplaceExifStrings(cImgDescText, cFileName, cDestPath + cImgFileName));
tImgPage.SetReplace("${IMAGEDESCTEXT}",tImgDesc.Replace());
}
else
{
tImgPage.SetReplace("${IMAGEDESCTEXT}","");
}
if (imgpos<0) imgpos=0;
tImgPage.SetReplace("${IMAGETOP}",imgpos);
// prev - next navigation
{
var cNavigationText="";
if (iFile>1)
cNavigationText+="<a href=\""+GetImgPageFN(iFile-1)+"\">"+tNavPrev.Replace()+"</a>";
else
cNavigationText+=tNavPrev.Replace();
//cNavigationText+=" ";
cNavigationText+=" "+iFile+"/"+iFilesCount+" ";
if (iFile<iFilesCount)
cNavigationText+="<a href=\""+GetImgPageFN(iFile+1)+"\">"+tNavNext.Replace()+"</a>";
else
cNavigationText+=tNavNext.Replace();
cNavigationText+=" ";
cNavigationText+="<a href=\""+GetPageFN(cPage)+"\">"+tNavUp.Replace()+"</a>";
tImgPage.SetReplace("${NAVIGATION}",cNavigationText);
}
// navigation with thumbnails
{
var cNavigationText="";
var iMin=iFile-2;
if (iMin<1)
iMin=1;
var iMax=iFile+2;
if (iMax>iFilesCount)
iMax=iFilesCount;
if (iMin==1 && iFilesCount>3)
{
iMax=5;
if (iMax>iFilesCount) iMax=iFilesCount;
}
if (iMax==iFilesCount && iFilesCount>3)
{
iMin=iFilesCount-4;
if (iMin<1) iMin=1;
}
var tThmNavEntry = new CTemplate();
tThmNavEntry.Load(cSourcePath + "thmnaventry.tpl", 0);
var tThmNavEntryA = new CTemplate();
tThmNavEntryA.Load(cSourcePath + "thmnaventrya.tpl", 0);
for(var i=iMin;i<=iMax;i++)
{
var cThmNumFileName = IntToStr(i, 5);
var cThmThnFileName = "thn" + cThmNumFileName + ".jpg";
if (i==iFile)
{
tThmNavEntryA.SetReplace("${IMGPAGEPATH}",GetImgPageFN(i));
tThmNavEntryA.SetReplace("${THMNAME}",cThmThnFileName);
cNavigationText+=tThmNavEntryA.Replace();
}
else
{
tThmNavEntry.SetReplace("${IMGPAGEPATH}",GetImgPageFN(i));
tThmNavEntry.SetReplace("${THMNAME}",cThmThnFileName);
cNavigationText+=tThmNavEntry.Replace();
}
}
tImgPage.SetReplace("${THMNAVIGATION}",cNavigationText);
}
SaveString(cDestPath + GetImgPageFN(iFile), tImgPage.Replace(), 0);
// ADD TO INDEX
tIndexEntry.SetReplace("${IMAGEPAGEPATH}",GetImgPageFN(iFile));
tIndexEntry.SetReplace("${THUMBNAILPATH}",cThnFileName);
tIndexEntry.SetReplace("${INDEXENTRYTEXT}",ReplaceExifStrings(thnDescription, cFileName, cDestPath + cImgFileName));
tIndexEntry.SetReplace("${IMGWIDTH}",iCurThmWidth);
tIndexEntry.SetReplace("${IMGHEIGHT}",iCurThmHeight);
RowText+=tIndexEntry.Replace();
}
else
{
RowText+=tIndexEntryEmpty.Replace();
}
cCol++;
if (cCol==iCols)
{
cCol=0;
cRow++;
tIndexRow.SetReplace("${INDEXENTRIES}",RowText);
RowText="";
if (iFile - iFilesCount >= iCols)
{
// do nothing - empty row
}
else
RowsText+=tIndexRow.Replace();
}
if (cRow==iRows)
{
cCol=0;
cRow=0;
tIndexPage.SetReplace("${INDEXROWS}",RowsText);
RowsText="";
// page counter will be incremented in next "if" section
}
iPos++;
if (iPos==iPerPage)
{
if (iFile <= iFilesCount)
iPos=0;
tIndexHeader.SetReplace("${PAGETITLE}", TitleText);
tIndexPage.SetReplace("${GALLERYTITLE}",TitleText);
if (DescriptionText=="") {
tIndexPage.SetReplace("${GALLERYDESCRIPTION}","");
}
else
{
var tDesc = new CTemplate();
tDesc.Load(cSourcePath + "gallerydesc.tpl", 0);
tDesc.SetReplace("${DESCRIPTIONHEADER}", iGalDescriptionHeader);
tDesc.SetReplace("${DESCRIPTIONTEXT}", DescriptionText);
tIndexPage.SetReplace("${GALLERYDESCRIPTION}",tDesc.Replace());
}
tIndexPage.SetReplace("${HEADER}",tIndexHeader.Replace());
var cNavigationText="";
if (cPage>1)
cNavigationText+="<a href=\""+GetPageFN(cPage-1)+"\">"+tNavPrev.Replace()+"</a>";
else
cNavigationText+=tNavPrev.Replace();
//cNavigationText+=" ";
cNavigationText+=" "+cPage+"/"+iPagesCount+" ";
if (cPage<iPagesCount)
cNavigationText+="<a href=\""+GetPageFN(cPage+1)+"\">"+tNavNext.Replace()+"</a>";
else
cNavigationText+=tNavNext.Replace();
cNavigationText+=" ";
if (pAlbum.bIsCurrentGalleryRootGallery)
{
if (iBackRef==2)
{
cNavigationText+="<a href=\"../\">"+tNavUp.Replace()+"</a>";
}
else
if (iBackRef==3)
{
cNavigationText+="<a href=\""+cBackRefURL+"\">"+tNavUp.Replace()+"</a>";
}
else
{
cNavigationText+=" ";
}
}
else
cNavigationText+="<a href=\"../\">"+tNavUp.Replace()+"</a>";
tIndexPage.SetReplace("${NAVIGATION}",cNavigationText);
tFooter.SetReplace("${FOOTER_TEXT}", ReplaceExifStrings(txtFooter, "", ""));
tIndexPage.SetReplace("${FOOTER}",tFooter.Replace());
SaveString(cDestPath + GetPageFN(cPage), tIndexPage.Replace(), 0);
cPage++;
}
}
return cDestPath + GetPageFN(1);
}
INIT_OK;